In a communication network, it is often useful to measure performance metrics such as packet delay and packet loss between two network devices. Such metrics are useful for detection of faults and anomalies in the communication network.
One technique, referred to as “passive performance monitoring,” involves marking data packets in a way that enables measuring packet loss and/or packet delay, thereby eliminating the need for sending additional measurement packets. In particular, a flow of packets is partitioned into different consecutive blocks by marking each packet in a block with a “color,” so that all packets in a block have the same color and consecutive blocks have different colors. Packets are marked by adding a bit to headers of the packet that indicates the “color” of the packet. A sender node records the numbers of packets in each block. A receiver node identifies blocks of packets using the color indicator in the headers of the packets, and counts the number of received packets in each block. By comparing the number of packets in a block recorded by the sender node with the number of packets in the block received by the receiver node, a loss measurement is calculated.
To measure delay, the sender node records a time at which a packet is transmitted (transmit time), and the receiver nodes records a time at which the packet is received (receipt time). By comparing the transmit time with the receipt time, a delay measurement is calculated. To reduce computational load, the transmit time and the receipt time for only one packet in each block are recoded. In order to indicate to the receiver node the one packet in the block for which the receiver node is to record a receipt time, the sender node includes a further header field in the packets. This further header field indicates (or “marks”) the packets for which the sender node recorded transmit times.
The sender node sends i) the recorded number of packets in each block and ii) the recorded transmit time of the one packet in each block to a measurement node. Similarly, the receiver node sends i) the recorded number of received packets in each block and ii) the recorded receipt time of the one packet in each block to the measurement node. The measurement node then calculates a loss measurement metric using the recorded number of packets in each block from the sender node and the recorded number of received packets in each block from the receiver node. Similarly, the measurement node calculates a delay measurement metric using the recorded transmit time of the marked packet in each block from the sender node and the recorded receipt time of the marked packet in each block from the receiver node.